var blob: Blob = new (<any>Blob)(['<!doctype html>\n', document.documentElement.outerHTML], { type: 'application/octet-stream' }); export function forEach<T>(array: T[], callback: (x: T, index: number) => void) { for (var i = 0; i < array.length; i++) { export function find<T, R>(array: T[], predicate: (x: T, index: number) => R): R { for (var i = 0; i < array.length; i++) { export function encodeForInnerHTML(content: string): string { return content.replace(/<\/+script/g, (match) => { return '</' + match.slice(1);
export function decodeFromInnerHTML(innerHTML: string): string { return innerHTML.replace(/<\/\/+script/g, (match) => { return '<' + match.slice(2);
export function encodeForAttributeName(value: string): string { var codes: number[] = [];
for (var i = 0; i < value.length; i++) { var cc = value.charCodeAt(i);
passableOnly = (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z' || c === '_' || c === '-');
return 'n-' + codes.join('-'); export function decodeFromAttributeName(attributeNamePart: string): string { if (attributeNamePart.slice(0, 2) === 's-')
return attributeNamePart.slice(2);
var codes = attributeNamePart.slice(2).split('-'); var result: string[] = [];